package xkp.lesson4;

public class TestBox {
	public static void main(String[] args) {
		//
		Box box = new Box("你好");
		Person person = new Person(20, "张三");
		Box2 box2 = new Box2(person);
		System.out.println(box2);
		
		//Box2确实解决了我们面临的问题，但是使用Object指向后，原有的数据类型就模糊
		//我们此时从Box2中取数据，发现是Object类型(可以指向任意类型),很难知道原有数据的真实类型
		Person data = (Person) box2.getData();
		
		//基本数据类型其实被包装成包装类了
		//可以使用反编译查看
		Box2 box22 = new Box2(200);
		
		//如何做到既可以存放任意数据类型，然后还能保持数据类型不丢失
		//针对这种情况，我们就需要使用泛型的概念
		
		Box3<String> box3 = new Box3<String>("你好");
		String data3 = box3.getData();
		
		Box3<Person> box32 = new Box3<Person>(person);
		Person person2 = box32.getData();
		
		Box3<Integer> box33 = new Box3<Integer>(300);
		Integer integer = box33.getData();
	}

}
